Today, information technology (IT) resources are managed using a variety of incompatible and often proprietary interfaces and protocols. Requirements for management information regarding the resources need to be specifically programmed to address new resources and in many cases the specific programming is not updated as new versions of the IT resources become available.
The problem of managing disparate IT resources is becoming more acute as systems are increasingly developed using IT resources that are deployed in remote locations and accessed via information networks, such as the Internet. Generally, the resources to be managed are not readily identifiable when the resources are highly distributed and independent of one another. Further, it is difficult to obtain information regarding properties and attributes of the resources, and protocols for exchanging management information with the resources. A further difficulty lies in determining the relationships among the resources used in a system to pinpoint operational problems when one or more of the resources do not respond as expected.
The term Web services, also referred to herein as “services”, describes an approach to distributed computing in which interactions are carried out through the exchange of eXtensible Markup Language (XML) messages. Web services can perform any task that can be described and contained within one or more modules of code. Essentially any transaction or bit of business logic can become a Web service if it can be accessed and used by another system over the Internet.
A Web service is a software system identified by a Universal Resource Identifier (URI) whose public interfaces and bindings are typically defined and described in an XML document. The description can be discovered by other software systems. These systems may then interact with the Web service in a manner prescribed by its definition, using XML based messages conveyed by Internet protocols.
The Web services architecture is based upon the interactions between three primary roles: service provider, service registry, and service requester. These roles interact using publish, find and bind operations. The service provider is the entity that provides access to the Web service and publishes the service description in a service registry. The service requester finds the service description in a service registry and can use the information in the description to bind to a service.
Web services typically send XML messages formatted in accordance with the Simple Object Access Protocol (SOAP) specification. The SOAP specification is a universally agreed-upon protocol that can use XML and HTTP together to invoke functions exposed in Web services.
The XML messages are described using the Web Services Description Language (WSDL) specification, which, along with the Universal Description Discovery and Integration (UDDI) registry, provides a definition of the interface to a Web service and identifies service providers in a network. The WSDL specification is an XML-based language used to define Web services and describe how to access them. An application trying to use a particular Web Service can often use WSDL to find the location of the Web service, the function calls available, and the format that must be followed to access the Web service. Therefore, the client first obtains a copy of the WSDL file from the server and then uses the information in this file to format a SOAP request.
The UDDI registry supports Web services by providing a place for a company to register its business and the Web services that it offers. Users that need a Web service can use this registry to find a business that provides the service.
It is not uncommon for systems that manage IT resources to be responsible for monitoring and/or controlling hundreds or even thousands of resources. Current systems do not provide a common, consistent facility for accessing management features of the IT resources. Further, the systems do not include facility to allow a manager to dynamically discover resources that can be managed and the management features that are available for a particular resource. Current systems also do not provide facilities for determining resources that are related to a discovered resource, and whether or not the related resources can also be managed.